﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WCS.Infrastructure.Dto.Response.Lottery
{
    /// <summary>
    /// 活动抽奖与发券记录查询响应DTO
    /// </summary>
    public class LotteryClaimRecordQueryResponseDto
    {
        /// <summary>
        /// 抽奖记录ID
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// 防重入请求ID（唯一）
        /// </summary>
        public string RequestId { get; set; }

        /// <summary>
        /// 活动ID
        /// </summary>
        public string ActivityId { get; set; }

        /// <summary>
        /// 用户ID
        /// </summary>
        public string UserId { get; set; }

        /// <summary>
        /// 奖品ID，NULL 表示“谢谢参与”
        /// </summary>
        public string? AwardId { get; set; }

        /// <summary>
        /// 是否发券成功
        /// </summary>
        public bool Issued { get; set; }

        /// <summary>
        /// 结果状态：0=失败，1=成功，2=实名未完成
        /// </summary>
        public int Status { get; set; }

        /// <summary>
        /// 券实例ID（如发券成功则记录）
        /// </summary>
        public string? CouponId { get; set; }

        /// <summary>
        /// 中奖对应的券模板ID（快照）
        /// </summary>
        public string? TemplateId { get; set; }

        /// <summary>
        /// 优惠券模板名称
        /// </summary>
        public string TemplateName { get; set; }

        /// <summary>
        ///  海报图片URL
        /// </summary>
        public string? PosterUrl { get; set; }

        /// <summary>
        /// 文案/错误信息
        /// </summary>
        public string? Message { get; set; }

        /// <summary>
        /// 渠道/入口
        /// </summary>
        public string? Channel { get; set; }

        /// <summary>
        /// 转盘命中盘位（如使用动效）
        /// </summary>
        public int? TargetSlot { get; set; }

        /// <summary>
        /// 多宫格命中格子（如使用动效）
        /// </summary>
        public string? TargetCell { get; set; }

        /// <summary>
        /// 抽奖时携带的配置版本
        /// </summary>
        public string? ConfigVersion { get; set; }

        /// <summary>
        /// 记录时间
        /// </summary>
        public DateTime CreationTime { get; set; }

        /// <summary>
        /// 扩展属性（JSON文本）
        /// </summary>
        public string? ExtraProperties { get; set; }
    }
}
